home *** CD-ROM | disk | FTP | other *** search
Wrap
1 REM KEEP IN TOUCH 3 REM (C) 1984 GNOSSOS SOFTWARE ALL RIGHTS RESERVED 5 REM BY STEVE KANTOR 202-387-0858 6 REM V0 - 11/10/84 10 KEY OFF:CLS:GOSUB 40000:GOTO 60000 20 GOSUB 102:RETURN 21 GOSUB 280:GOSUB 281:RETURN 22 GOSUB 120:GOSUB 114:RETURN 23 COLOR 7,0:GOSUB 390:PRINT S$(SN,X,0);:RETURN 24 GOSUB 102:GOSUB 124:GOSUB 110:GOSUB 530:RETURN 25 GOSUB 534:GOSUB 564:RETURN 26 GOSUB 140:GOSUB 530:RETURN 70 REM inchar 72 B(6)=0:R$=INKEY$:IF R$="" THEN 72 74 IF LEN(R$)=2 THEN R$=RIGHT$(R$,1):B(6)=-1 75 R=ASC(R$):RETURN 100 LOCATE 4,1:PRINT STRING$(79,"═");:RETURN 101 A$="MENU":GOSUB 111:RETURN 102 CLS:GOSUB 100:GOSUB 101:B(2)=0:RETURN 103 LOCATE 3,1:PRINT STRING$(79,"─");:RETURN 104 REM BOX 105 LOCATE GSV,GSH:PRINT "╔";STRING$(BW-2,"═");"╗"; 106 FOR V=GSV+1 TO GSV+BH-1:LOCATE V,GSH 107 PRINT "║";:LOCATE V,GSH+BW-1:PRINT "║";:NEXT 108 LOCATE GSV+BH,GSH:PRINT "╚";STRING$(BW-2,"═");"╝";:RETURN 110 GSV=6:GSH=5:BW=70:BH=17:GOSUB 104:RETURN 111 COLOR 0,7:LOCATE 1,74:PRINT " "A$" ";:COLOR 7,0:RETURN 112 COLOR 23,1:LOCATE 1,74:PRINT " WAIT ";:COLOR 7,0:RETURN 113 GSV=7:GSH=5:BW=70:BH=15:GOSUB 104:RETURN 114 A$="PAUSE":GOSUB 111:GOSUB 281:LOCATE 2,1:COLOR 15,0 115 PRINT "Please press any key...";:GOSUB 70:COLOR 7,0:GOSUB 101:RETURN 120 REM MESSAGE 121 GOSUB 280:LOCATE 3,1:COLOR 15,0:PRINT M$;:COLOR 7,0:RETURN 122 GOSUB 281:LOCATE 2,1:COLOR 15,0:PRINT NM$;", ";M$;:COLOR 7,0:RETURN 124 REM OUTCL 125 FOR T1=9 TO 16:LOCATE VAL(CL$(T1,1)),VAL(CL$(T1,2)) 126 PRINT CL$(T1,0);":";:NEXT:RETURN 130 REM PROMPT 131 GOSUB 120:PRINT ": ";:LOCATE ,,1,1,31:LINE INPUT;"";Q$:GOSUB 280:RETURN 133 A$="EDIT":GOSUB 111:GOSUB 21:GOSUB 160 134 LOCATE 2,1:PRINT "Use the direction keys to highlight information (UP/DOWN/LEFT/RIGHT/HOME/END)"; 135 LOCATE 3,1:PRINT "Type in new information followed by RETURN. Use DEL and INS as needed."; 136 RETURN 140 REM CLEARCARD 141 LOCATE 15,23:PRINT SPC(10);:FOR T1=8 TO 13:LOCATE T1,20:PRINT SPC(50); 142 LOCATE T1+9,22:PRINT SPC(50);:NEXT:LOCATE 15,50:PRINT SPC(10);:RETURN 143 REM YESNO 144 B(2)=0:GOSUB 122:GOSUB 280:SN=5:B(8)=0:GOSUB 300:IF T2=2 THEN 146 145 IF X=1 THEN B(8)=-1 ELSE IF X=3 THEN B(8)=2 146 RC=PC:GOSUB 21:RETURN 147 REM CHOOSEFILE 148 GOSUB 20:LOCATE 2,1:PRINT"Here is a list of your Address Books. Point using the direction keys.":PRINT "Press the RETURN key to select the Book that is highlighted."; 149 SN=6:GOSUB 300:IF B THEN F$="TEMP.DAT":RETURN ELSE RETURN 150 IF B THEN RETURN ELSE B(12)=X:GOSUB 281:IF G$(B(12),0)="NEW" THEN GOSUB 156:RETURN 151 F$=G$(B(12),0)+".DAT":GOSUB 500:RETURN 152 REM POINT 153 A$="POINT":GOSUB 111:LOCATE 1,1:PRINT "Press the ESC key to end pointing and return to menu"; 154 M$="Use the direction keys (UP/DOWN/LEFT/RIGHT/HOME/END/PGUP/PGDN)":GOSUB 122 155 M$="Press the RETURN key to select the choice you are pointing to":GOSUB 120:RETURN 156 NG=NG+1:B(12)=NG:F$="NEW.DAT":GOSUB 500:REM NEWFILENAME 157 M$="Enter a name for your file (8 characters or less, eg. PEOPLE)":GOSUB 130 158 IF LEN(Q$)>8 THEN 157 ELSE G$(NG,0)=Q$:F$=Q$+".DAT":G$(NG,1)="1" 159 M$="Enter a description of the file":GOSUB 130:G$(NG,2)=Q$:RETURN 160 LOCATE 1,1:PRINT "Press the ESC key when you are finished to return to the menu";:RETURN 162 REM ISDATE 163 B=0:IF LEN(A$)<>8 THEN RETURN ELSE IF MID$(A$,3,1)<>"/" THEN RETURN 164 IF MID$(A$,6,1)<>"/" THEN RETURN ELSE IF VAL(MID$(A$,1,2))<1 THEN RETURN 165 IF VAL(MID$(A$,1,2))>12 THEN RETURN ELSE IF VAL(MID$(A$,4,2))<1 THEN RETURN 166 IF VAL(MID$(A$,4,2))>31 THEN RETURN ELSE IF VAL(MID$(A$,7,2))<80 THEN RETURN 167 IF VAL(MID$(A$,7,2))>99 THEN RETURN ELSE B=-1:RETURN 170 REM headfill 171 FOR X=1 TO 16:CL$(X,0)=D$(0,X):NEXT:RETURN 172 M$="To be implemented in future version...":GOSUB 22:RETURN 173 REM YN 174 T2=0:IF INSTR("Yy",R$)<>0 THEN B(8)=-1:T2=2 175 IF INSTR("Nn",R$)<>0 THEN B(8)=0:T2=2 ELSE IF INSTR("Cc",R$)<>0 THEN B(8)=2:T2=2 177 RETURN 180 REM ESCSTOP 181 LOCATE 1,1:PRINT "Press the ESC key to stop printing the report";:RETURN 200 REM MENU 202 R=-1:B(2)=0:B=0:GOSUB 281:T1=VAL(M$(MN,0,0)):IF MC>T1 OR PM<>MN THEN MC=1 204 FOR X=1 TO T1:LOCATE 2,1+(X-1)*10 206 PRINT M$(MN,X,0);" ";:NEXT 208 WHILE R<>K(0):LOCATE 2,1+(MC-1)*10:COLOR 0,15:PRINT M$(MN,MC,0); 212 GOSUB 280:LOCATE 3,1:PRINT M$(MN,MC,1); 214 GOSUB 70:GOSUB 230:IF B THEN MC=T3:B=0:RETURN 216 LOCATE 2,1+(MC-1)*10:PRINT M$(MN,MC,0); 218 IF R=K(1) THEN B=1:RETURN 220 IF R=K(5) THEN MC=MC-1:IF MC=0 THEN MC=T1 222 IF R=K(4) THEN MC=MC+1:IF MC>T1 THEN MC=1 224 IF R=K(6) THEN MC=1 ELSE IF R=K(7) THEN MC=T1 226 WEND:R=-1:RETURN 230 REM 231 IF B(6) THEN RETURN 232 IF NOT ((R>=65 AND R<=90) OR (R>=97 AND R<=122)) THEN RETURN 233 IF R>90 THEN R=R-32 234 FOR T3=1 TO T1:IF R=ASC(LEFT$(M$(MN,T3,0),1)) THEN B=-1:RETURN 235 NEXT:RETURN 280 COLOR 0,0:LOCATE 3,1:PRINT SPC(78);:COLOR 7,0:RETURN 281 COLOR 0,0:LOCATE 2,1:PRINT SPC(79);:COLOR 7,0:RETURN 300 REM SCROLL MENU 302 PC=RC:B=0:T1=VAL(S$(SN,0,0)):FOR X%=1 TO T1 304 LOCATE VAL(S$(SN,X%,1)),VAL(S$(SN,X%,2)):PRINT S$(SN,X%,0);:NEXT:IF B(2) THEN RETURN 310 IF X<1 OR X>T1 THEN X=1 312 B=0:T1=VAL(S$(SN,0,0)):R=-1:WHILE R<>K(0):GOSUB 390 314 COLOR 0,15:PRINT S$(SN,X,0);:GOSUB 70:IF SN=5 THEN GOSUB 173:IF T2=2 THEN RETURN 316 GOSUB 23 317 IF R=K(1) OR R=K(13) THEN B=1:RETURN 318 IF R=K(5) OR R=K(2) THEN X=X-1 319 IF R=K(4) OR R=K(3) THEN X=X+1 320 IF R=K(10) THEN CG=CG-1:B(5)=1:RETURN 321 IF R=K(11) THEN IF NR<CG*40+40 THEN 322 ELSE CG=CG+1:B(5)=1:RETURN 322 IF R=K(6) THEN X=1 ELSE IF R=K(7) THEN X=T1 324 IF SN<3 AND R=K(2) THEN X=X-1 ELSE IF SN<3 AND R=K(3) THEN X=X+1 327 IF X>T1 THEN X=1 ELSE IF X<1 THEN X=T1 328 WEND:RC=CG*40+X:RETURN 350 REM SCRMEN 352 PC=RC:T1=VAL(S$(SN,0,0)):FOR X=1 TO T1 354 GOSUB 23:NEXT:IF B(2) THEN RETURN 360 IF X<1 OR X>T1 THEN X=1 362 GOSUB 133:PC=RC:B=0:T1=VAL(S$(SN,0,0)):R=-1:WHILE R<>K(1):GOSUB 390 364 COLOR 0,15:PRINT S$(SN,X,0); 365 COLOR 15,0:GOSUB 390:GOSUB 70:IF R=K(12) THEN S$(SN,X,0)=T$(4):GOTO 367 ELSE IF (R=K(8) OR R=K(9)) AND (SN=3 OR SN=4) AND B(6) THEN RETURN 366 IF NOT(R=K(1) OR R=K(0) OR R=K(2) OR R=K(3) OR R=K(4) OR R=K(5) OR R=K(6) OR R=K(7)) OR (B(6)=0 AND R<>13 AND R<>27) THEN 375 367 GOSUB 23 368 IF R=K(1) THEN B=1:RETURN 369 IF R=K(5) THEN X=X-1 ELSE IF R=K(2) THEN X=X-1 370 IF R=K(4) OR R=K(0) THEN X=X+1 ELSE IF R=K(3) THEN X=X+1 372 IF R=K(6) THEN X=1 ELSE IF R=K(7) THEN X=T1 374 GOTO 380 375 GOSUB 390:PRINT SPC(LEN(S$(SN,X,0)));:GOSUB 390:PRINT R$;:LINE INPUT;"";S$(SN,X,0):S$(SN,X,0)=R$+S$(SN,X,0):IF SN=4 AND (X=9 OR X=10) THEN A$=S$(SN,X,0):GOSUB 162:IF MN=6 OR MN=7 THEN 376 ELSE IF NOT B THEN BEEP:GOTO 365 376 GOSUB 23:X=X+1:IF X>T1 THEN X=1 ELSE IF X<1 THEN X=T1:GOTO 382 380 IF X>T1 THEN X=1 ELSE IF X<1 THEN X=T1 381 GOSUB 23 382 WEND:RC=PC:RETURN 390 LOCATE VAL(S$(SN,X,1)),VAL(S$(SN,X,2)),1,12,13:RETURN 400 REM TIM 403 T$=TIME$:T%(0)=VAL(LEFT$(T$,2)):T%(1)=VAL(MID$(T$,4,2)):T%(2)=VAL(MID$(T$,7,2)) 405 T%=T%(0):IF T%(0)>12 THEN T$(2)="PM":T%=T%-12 ELSE T$(2)="AM" 406 T$(3)=STR$(T%)+":"+STR$(T%(1))+" "+T$(2) 407 RETURN 410 REM timer 411 GOSUB 400:T%(7)=T%(0):T%(8)=T%(1):T%(9)=T%(2):RETURN 413 GOSUB 400:T1=T%(0)*60*60+T%(1)*60+T%(2) 414 T2=T%(7)*60*60+T%(8)*60+T%(9):T3=T1-T2 415 T1=INT(T3/60):T2=T3-T1*60:RETURN 418 GOSUB 280 419 GOSUB 413:M$="Elapsed time is "+STR$(T1)+" minutes and "+STR$(T2)+" seconds ":GOSUB 22:RETURN 420 M$="Set alarm, up/down=hours, right/left=minutes. Press ESC when time is set.":GOSUB 120 421 T%(12)=-1:COLOR 15,0:T%=T%(3):T$="AM":IF T%(3)>12 THEN T%=T%-12:T$="PM" 422 LOCATE 19,23:PRINT SPC(20);:LOCATE 19,23:PRINT T%;":";T%(4);" ";T$; 423 GOSUB 70:IF R=K(1) OR R=K(0) THEN T$(1)=STR$(T%)+":"+STR$(T%(4))+" "+T$:COLOR 7,0:RETURN 424 IF R=K(2) THEN T%(3)=T%(3)+1 425 IF R=K(3) THEN T%(3)=T%(3)-1 426 IF R=K(5) THEN T%(4)=T%(4)-1:IF T%(4)<0 THEN T%(4)=59:T%(3)=T%(3)-1 427 IF R=K(4) THEN T%(4)=T%(4)+1:IF T%(4)>59 THEN T%(4)=0:T%(3)=T%(3)+1 428 IF T%(3)>23 THEN T%(3)=0 ELSE IF T%(3)<0 THEN T%(3)=23 429 GOTO 421 430 REM SETALARM 432 T$="OFF":IF T%(12) THEN T$="ON" 433 M$="The alarm is currently set "+T$:GOSUB 120:GOSUB 114:RETURN 440 REM DISPLAYTIME 441 GOSUB 400:GOSUB 102:GOSUB 110:LOCATE 9,35:PRINT "KEEP IN TOUCH"; 444 LOCATE 12,8:PRINT "Current Time: ";T$(3); 445 LOCATE 13,8:PRINT "Current Date: ";DATE$; 446 LOCATE 16,8:PRINT "Starting Time: ";T$(0); 448 T$="OFF":IF T%(12) THEN T$="ON" 449 LOCATE 19,8:PRINT "Alarm Setting: ";T$(1);" ";T$;:RETURN 450 REM CHECKALARM 451 IF T%(12)=0 THEN RETURN 452 GOSUB 400:T1=T%(3)*60+T%(4):T2=T%(0)*60+T%(1):T3=T%(5)*60+T%(6) 454 IF T2>=T1 AND T1>T3 THEN 455 ELSE RETURN 455 R$=INKEY$:GOSUB 21:M$=NM$+" , the time is now "+T$(3):GOSUB 120 457 COLOR 23,1:LOCATE 1,74:PRINT "ALARM ";:COLOR 7,0:FOR T=1 TO 5 458 SOUND 500,5:FOR P=1 TO 400:NEXT:NEXT:T%(12)=0:GOSUB 114:RETURN 460 REM REPORT 461 B(9)=0:M$="Would you like to send report to the printer":GOSUB 143 462 GOSUB 610:GOSUB 618:IF B(8)=2 THEN RETURN ELSE IF B(8) THEN B(9)=-1 463 GOSUB 484:CLS:GOSUB 180:PRINT:PRINT:GOSUB 103:LC=0:IF RN=5 THEN LPP=999:GOTO 465 464 IF B(9) THEN LPP=66 ELSE LPP=20 465 FOR RC=1 TO NR:IF (B(17) AND B%(RC)=0) OR D$(RC,2)="<DELETED>" THEN 468 466 GOSUB 470:IF LC=LPP THEN LC=0:GOSUB 480:IF R=K(1) THEN GOSUB 102:RETURN 467 IF INKEY$=CHR$(27) THEN GOSUB 102:RETURN 468 NEXT:GOSUB 480:GOSUB 102:RETURN 470 ON RN GOSUB 471,471,471,471,475,471,471,471:LC=LC+1:RETURN 471 FOR T2=1 TO 10:T0=R%(RN,T2,0):T1=R%(RN,T2,1):IF T0=999 OR T1=0 THEN IF B(9) THEN LPRINT:RETURN ELSE PRINT:RETURN 472 IF B(9) THEN LPRINT LEFT$(D$(RC,T0),T1);SPC(1+T1-LEN(LEFT$(D$(RC,T0),T1))); ELSE PRINT LEFT$(D$(RC,T0),T1);SPC(1+T1-LEN(LEFT$(D$(RC,T0),T1))); 473 NEXT:RETURN 475 LPRINT D$(RC,1);" ";D$(RC,2):LPRINT D$(RC,3):LPRINT D$(RC,4):LPRINT D$(RC,5);", ";D$(RC,6);" ";D$(RC,7):FOR T3=1 TO 5:LPRINT:NEXT:RETURN 476 RETURN 480 REM newpage 481 IF NOT B(9) THEN GOSUB 114:CLS:GOSUB 180:PRINT:PRINT:GOSUB 103 ELSE LPRINT FF$ 482 RETURN 484 REM DOSELECT 485 IF NOT B(16) THEN RETURN ELSE M$="Do you want to report only contacts where "+B$(0):GOSUB 143 486 B(17)=0:IF B(8)=-1 THEN B(17)=-1 487 RETURN 490 REM todo 491 GOSUB 102:GOSUB 113:COLOR 0,15:LOCATE 8,30:PRINT NM$;"'s Things To Do "; 492 COLOR 7,0:FOR T=1 TO 10:LOCATE T+9,7:PRINT T:NEXT:X=1 493 GOSUB 573:SN=3:GOSUB 350:IF R=K(8) THEN T1=X:GOSUB 496:GOTO 490:X=T1 494 IF R=K(9) THEN T1=X:GOSUB 497:GOTO 490:X=T1 ELSE RETURN 496 FOR T2=X TO 10:S$(SN,T2,0)=S$(SN,T2+1,0):NEXT:B(2)=-1:RETURN 497 IF X=10 THEN RETURN ELSE FOR T2=10 TO X+1 STEP -1:S$(SN,T2,0)=S$(SN,T2-1,0):NEXT:S$(SN,X,0)="":B(2)=-1:RETURN 500 REM READDATA 501 GOSUB 102:B(13)=0:M$="Reading information from disk for "+F$:GOSUB 120 502 GOSUB 112:OPEN F$ FOR INPUT AS #1 503 NF=16:T2=0 504 INPUT #1,T$:IF T$<>"*KIT*" THEN T2=1:CLOSE #1:OPEN F$ FOR INPUT AS #1:GOTO 507 505 GOSUB 640:M$="Total of "+T3$+" contacts, last updated on "+T1$+" at "+T2$:GOSUB 120 507 FOR X=T2 TO B(15)+2:IF EOF(1) THEN NR=X-1:CLOSE #1:GOSUB 171:GOSUB 101:B(0)=0:RETURN 508 FOR T1=1 TO NF:INPUT #1,D$(X,T1):NEXT:NEXT:RETURN 510 REM SAVEDATA 512 GOSUB 102:GOSUB 112:M$="Saving information to disk for "+F$:GOSUB 120 513 OPEN F$ FOR OUTPUT AS #1:GOSUB 630 514 FOR X=0 TO NR:IF D$(X,2)="<DELETED>" THEN 517 516 WRITE #1,D$(X,1),D$(X,2),D$(X,3),D$(X,4),D$(X,5),D$(X,6),D$(X,7),D$(X,8),D$(X,9),D$(X,10),D$(X,11),D$(X,12),D$(X,13),D$(X,14),D$(X,15),D$(X,16) 517 NEXT:CLOSE #1:G$(B(12),1)=STR$(NR):GOSUB 600:RETURN 520 REM FILLMENU 521 IF B(0) THEN RETURN ELSE SN=CG 524 FOR X=1 TO 40:IF B(4)=0 THEN S$(SN,X,0)=LEFT$(D$(CG*40+X,3),38) ELSE S$(SN,X,0)=D$(CG*40+X,1)+" "+D$(CG*40+X,2) 526 NEXT:T%=NR-CG*40:IF T%>40 THEN T%=40 529 S$(SN,0,0)=STR$(T%):B(0)=-1:RETURN 530 REM ZOOMIN DRAW 532 B(2)=1:GOSUB 560:X=1:GOSUB 300:RETURN 534 REM ZOOMIN EDIT 536 GOSUB 560:X=1 537 GOSUB 362:IF B THEN LOCATE ,,0:RETURN ELSE IF R=K(8) THEN GOSUB 390:PRINT SPC(LEN(S$(SN,X,0)));:S$(SN,X,0)="":GOTO 537 538 B(3)=1:LOCATE VAL(S$(SN,X,1)),VAL(S$(SN,X,2)):LINE INPUT;"";S$(SN,X,0) 539 B(0)=0:GOTO 537 550 REM DELPERSON 551 B(2)=0:M$="Would you like to delete this person's information" 552 GOSUB 143:IF NOT B(8) OR B(8)=2 OR NR=1 THEN BEEP:RETURN 553 FOR X=1 TO 16:D$(RC,X)="":NEXT:D$(RC,2)="<DELETED>":D$(RC,3)="<DELETED>" 554 B(0)=0:RC=RC-1:IF RC=0 THEN RC=2 555 SN=4:GOSUB 26:RETURN 560 REM FILLCARD 562 FOR T%=1 TO 16:S$(SN,T%,0)=D$(RC,T%):NEXT:RETURN 564 FOR T%=1 TO 16:D$(RC,T%)=S$(SN,T%,0):NEXT:RETURN 570 REM SAVETODO 571 IF NOT B(7) THEN RETURN ELSE GOSUB 112:OPEN "TODO.DAT" FOR OUTPUT AS #1 572 FOR X=1 TO 10:WRITE #1,S$(3,X,0):NEXT:CLOSE #1:RETURN 573 IF NOT B(7) THEN OPEN "TODO.DAT" FOR INPUT AS #1 ELSE RETURN 574 FOR X=1 TO 10:INPUT #1,S$(3,X,0):NEXT:CLOSE #1:B(7)=-1:RETURN 580 REM redial 581 IF AD THEN PRINT #1,"A/":RETURN ELSE RETURN 590 REM READGROUP 591 GOSUB 112:OPEN "FILES.KIT" FOR INPUT AS #2 592 FOR X=1 TO 20:IF EOF(2) THEN NG=X-1:CLOSE #2:GOSUB 101:GOTO 594 593 FOR T1=0 TO 2:INPUT #2,G$(X,T1):NEXT:NEXT:NG=20 594 SN=6:S$(SN,0,0)=STR$(NG):FOR X=1 TO NG 595 S$(SN,X,0)=G$(X,0)+STRING$(8-LEN(G$(X,0))," ")+STRING$(3," ")+G$(X,1)+STRING$(4-LEN(G$(X,1))," ")+STRING$(3," ")+G$(X,2) 596 NEXT:RETURN 600 REM SAVEGROUP 602 GOSUB 112:OPEN "FILES.KIT" FOR OUTPUT AS #2 604 FOR X=1 TO 20:IF G$(X,0)="" THEN CLOSE #2:GOSUB 101:RETURN 606 FOR T1=0 TO 2:WRITE #2,G$(X,T1):NEXT:NEXT:RETURN 610 REM FINDMAXWIDTH 611 IF B(13) THEN RETURN ELSE GOSUB 112:FOR T%=1 TO 16:M%(T%)=1:NEXT 612 FOR X%=1 TO NR:FOR T%=1 TO 16 614 IF LEN(D$(X%,T%))>M%(T%) THEN M%(T%)=LEN(D$(X%,T%)) 616 NEXT:NEXT:GOSUB 101:B(13)=-1:RETURN 618 FOR T2=1 TO 10:IF R%(RN,T2,0)=999 THEN RETURN 619 R%(RN,T2,1)=M%(R%(RN,T2,0)):NEXT:RETURN 620 REM SPECREP 621 RC=NR+1:GOSUB 680:GOSUB 610 623 FOR X=1 TO 16:T%=VAL(D$(RC,X)):R%(RN,T%,0)=X 624 R%(RN,T%,1)=M%(X):D$(RC,X)="":NEXT:RC=1 625 TW=0:FOR X=1 TO 10:TW=TW+1+R%(RN,X,1):IF TW>79 THEN R%(RN,X,0)=999:GOTO 627 626 NEXT 627 GOSUB 102:RETURN 630 REM SAVEHEADER 631 WRITE #1,"*KIT*",B(14),DATE$,TIME$,B(4),NR,"6","7","8" 632 FOR X=1 TO 3:RN=X+5:WRITE #1,M$(10,X,0),M$(10,X,1),R%(RN,1,0),R%(RN,2,0),R%(RN,3,0),R%(RN,4,0),R%(RN,5,0),R%(RN,6,0),R%(RN,7,0),R%(RN,8,0),R%(RN,9,0),R%(RN,10,0) 633 NEXT X:RETURN 640 REM RHEADER 641 INPUT #1,B(14),T1$,T2$,B(4),T3$,X$,X$,X$ 642 FOR X=1 TO 3:RN=X+5:INPUT #1,M$(10,X,0),M$(10,X,1),R%(RN,1,0),R%(RN,2,0),R%(RN,3,0),R%(RN,4,0),R%(RN,5,0),R%(RN,6,0),R%(RN,7,0),R%(RN,8,0),R%(RN,9,0),R%(RN,10,0) 643 NEXT:RETURN 650 REM SEARCH 652 SN=4:RC=NR+1:GOSUB 24:GOSUB 25 653 FOR X=1 TO 16:IF D$(RC,X)<>"" THEN SF=X:SF$=D$(RC,X):GOTO 656 654 NEXT:RETURN 656 GOSUB 112:FOR X=1 TO NR:IF D$(X,SF)=SF$ THEN B%(X)=-1 ELSE B%(X)=0 657 NEXT:RC=1:B(16)=-1:B$(0)=CL$(SF,0)+" = "+SF$:RETURN 660 REM CALL 661 GOSUB 810 662 B(2)=0:M$="Did you connect with who you were calling":GOSUB 143:IF B(8)=2 OR B(8)=0 THEN RETURN 664 CLOSE #1:GOSUB 410:D$(RC,10)=T$(4):MN=8:RETURN 670 REM ADDCARD 671 NR=NR+1:IF NR>B(15) THEN BEEP:RETURN 672 RC=NR:GOSUB 680:FOR T1=1 TO 16:IF D$(RC,T1)<>"" THEN 675 674 NEXT:NR=NR-1:RC=NR:RETURN 675 B(3)=-1:B(0)=0:B(13)=0:RETURN 680 REM EASYOUT 681 GOSUB 102:FOR X=1 TO 16:LOCATE X+5,1:PRINT CL$(X,0);:NEXT 682 SN=7:GOSUB 530:GOSUB 25:RETURN 690 REM ERROR 691 GOSUB 102:BEEP:BEEP 692 LOCATE 10,1:PRINT "Program problem number: ";ERR 693 PRINT " On line # : ";ERL 694 M$="Please call Gnossos Software @ 202-387-0858":GOSUB 22:RESUME NEXT:RETURN 700 REM EXTRACT 702 GOSUB 650:GOSUB 102:M$="What is the name for the extracted file ":GOSUB 130 703 C=0:F$=LEFT$(Q$,8)+".PRN":GOSUB 112:OPEN F$ FOR OUTPUT AS #1 704 FOR X=1 TO NR:IF B%(X)=0 OR D$(X,2)="<DELETED>" THEN 707 705 WRITE #1,D$(X,1),D$(X,2),D$(X,3),D$(X,4),D$(X,5),D$(X,6),D$(X,7),D$(X,8),D$(X,9),D$(X,10),D$(X,11),D$(X,12),D$(X,13),D$(X,14),D$(X,15),D$(X,16) 706 LOCATE 1,1:C=C+1:PRINT C; 707 NEXT:CLOSE #1:GOSUB 102:RETURN 810 REM CALL 811 IF AD=0 THEN RETURN 812 OPEN "COM1:" FOR OUTPUT AS #1:T$="":IF LEN(D$(RC,8))>8 THEN T$=LS$ 813 PRINT #1,"AT T D ";T$;D$(RC,8) 814 M$="Dialing...Press any key and pick up phone when you connect":GOSUB 120 815 IF INKEY$="" THEN 815 816 PRINT #1,"AT H":CLOSE #1:RETURN 900 REM MENUDRIVER 901 B=0:LOCATE 1,1:PRINT SPC(70);:GOSUB 101 902 GOSUB 200:PM=MN:IF B THEN MN=VAL(M$(MN,0,1)):GOTO 902 904 ON MN GOSUB 1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100,2200 905 IF LM=2 AND MN=1 THEN LM=1:GOSUB 1110 906 GOSUB 450:GOTO 900 1100 REM PEO,CLO,REP,TOD,DB,GAM,OTH,QUIT 1104 ON MC GOSUB 1110,1120,1130,1140,1150,1160,1170,1180:RETURN 1110 B(5)=0:GOSUB 102:SN=CG:GOSUB 152:GOSUB 520:GOSUB 300:IF B THEN RETURN 1111 IF CG<0 THEN CG=0 ELSE IF CG>2 THEN CG=2 1112 IF B(5) THEN B(0)=0:B(2)=0:B=0:GOTO 1110 1114 SN=4:GOSUB 24:MN=2:RETURN 1120 GOSUB 102:GOSUB 440:MN=5:RETURN 1130 MN=7:RETURN 1140 GOSUB 490:RETURN 1150 MN=4:RETURN 1160 MN=9:RETURN 1170 MN=6:RETURN 1180 M$="Are you sure you want to quit and finish using the program":GOSUB 143:IF B(8)<>-1 THEN RETURN 1181 GOSUB 570:M$="Do you wish to save your contact file":GOSUB 143 1182 IF B(8)=-1 THEN GOSUB 510 1184 CLS:LOCATE 10,35:PRINT "Keep In Touch":LOCATE 12,33:PRINT"Gnossos Software":LOCATE 22,1:IF TEST=-1 THEN END ELSE SYSTEM 1200 REM CHA,DIA,NEX,PRE,ADD,PRI,OTH,MEN 1202 B(2)=1:LM=2 1204 ON MC GOSUB 1210,1220,1230,1240,1250,1260,1270,1280:RETURN 1206 LOCATE 15,23:PRINT SPC(10);:FOR T1=8 TO 13:LOCATE T1,20:PRINT SPC(52); 1207 LOCATE T1+9,22:PRINT SPC(50);:NEXT T1:LOCATE 15,50:PRINT SPC(10); 1208 SN=4:GOSUB 530:RETURN 1210 SN=4:GOSUB 25:B(0)=0:B(13)=0:RETURN 1220 GOSUB 660:RETURN 1230 RC=RC+1:IF RC>NR THEN RC=NR 1231 SN=4:GOSUB 26:RETURN 1240 RC=RC-1:IF RC=0 THEN RC=1 1241 SN=4:GOSUB 26:RETURN 1250 SN=7:GOSUB 670:SN=4:GOSUB 24:RETURN 1260 RETURN:REM PRINTCARD 1270 MN=3:RETURN 1280 MN=1:RETURN 1300 REM FIR,LAS,NEX,PRE,DEL,SEL,MEN 1304 SN=4:ON MC GOSUB 1310,1320,1330,1340,1350,1360,1370 1305 IF MC<5 THEN GOSUB 26:RETURN ELSE RETURN 1310 RC=1:RETURN 1320 RC=NR:RETURN 1330 RC=RC-1:IF RC=0 THEN RC=1:RETURN ELSE RETURN 1340 RC=RC+1:IF RC>NR THEN RC=NR:RETURN ELSE RETURN 1350 GOSUB 550:RETURN 1360 GOSUB 172:RETURN 1370 MN=2:RETURN 1400 REM SAV,SWI,LIS,DEL,EXT,QUT 1404 ON MC GOSUB 1410,1420,1430,1440,1450,1460:RETURN 1410 GOSUB 510:RETURN 1420 GOSUB 510:ERASE D$:DIM D$(B(15)+1,16):GOSUB 147:GOSUB 150:GOSUB 102:MN=1:RETURN 1430 GOSUB 102:LOCATE 5,1:FOR X=1 TO NG:PRINT S$(6,X,0):NEXT X:GOSUB 114:GOSUB 102:RETURN 1440 GOSUB 102:GOSUB 147:T4=X:IF T4=B(12) THEN RETURN 1441 M$="Do you want to delete the entire file from your disk for "+G$(X,0) 1442 GOSUB 143:IF B(8)<>-1 THEN RETURN 1443 M$="Are you sure you want to delete" 1444 GOSUB 143:IF B(8)<>-1 THEN RETURN 1445 KILL G$(T4,0)+".DAT":FOR T=T4 TO NG:FOR T1=0 TO 2:G$(T,T1)=G$(T+1,T1) 1446 NEXT:NEXT:RETURN 1450 GOSUB 700:RETURN 1460 MN=1:RETURN 1500 REM SET,OFF,QUT 1504 ON MC GOSUB 1510,1520,1530:RETURN 1510 GOSUB 420:GOSUB 440:RETURN 1520 T%(12)=0:T$(1)="":GOSUB 440:RETURN 1530 MN=1:RETURN 1600 REM COM,NAM,DIA,HEA,CAL,BYT,UTI,QUT 1604 ON MC GOSUB 1610,1620,1630,1640,1650,1660,1670,1680:RETURN 1610 B(4)=0:B(0)=0:RETURN 1620 B(4)=-1:B(0)=0:RETURN 1630 GOSUB 172:RETURN 1640 FOR X=1 TO 16:D$(0,X)=CL$(X,0):NEXT 1641 SN=7:RC=0:GOSUB 680 1642 B(3)=1:FOR X=1 TO 16:CL$(X,0)=LEFT$(D$(0,X),12):NEXT:RETURN 1650 GOSUB 172:RETURN 1660 M$="You have "+STR$(FRE(0))+" bytes free. Do you want to clear memory":GOSUB 143:IF B(8)<>-1 THEN RETURN 1661 M$="Please wait 2 minutes, clearing memory":GOSUB 120:T=FRE("") 1662 BEEP:GOSUB 114:RETURN 1670 GOSUB 172:RETURN 1680 MN=1:RETURN 1700 REM PHO,DAT,COM,CUS,LAB,DES,MEN 1704 ON MC GOSUB 1710,1720,1730,1740,1750,1760,1770,1780:RETURN 1710 RN=1:GOSUB 460:RETURN 1720 RN=2:GOSUB 460:RETURN 1730 RN=3:GOSUB 460:RETURN 1740 MN=10:RETURN 1750 RN=5:GOSUB 460:RETURN 1760 M$="Which custom report do you want to design (1, 2, or 3)":GOSUB 130 1761 RN=VAL(Q$)+5:IF RN<6 OR RN>8 THEN BEEP:GOTO 1760 1762 M$="Enter a short name for the report (8 characters or less)":GOSUB 130 1763 IF LEN(Q$)>8 THEN BEEP:GOTO 1762 ELSE M$(10,RN-5,0)=Q$ 1764 M$="Enter a description of report":GOSUB 130:M$(10,RN-5,1)=Q$ 1765 GOSUB 620:RETURN 1770 GOSUB 650:RETURN 1780 MN=1:RETURN 1800 REM CHA,ELA,HAN,TOD,MEN 1804 ON MC GOSUB 1810,1820,1830,1840,1850:RETURN 1810 SN=4:GOSUB 25:RETURN 1820 GOSUB 418:RETURN 1830 GOSUB 413 1831 M$="Topic of conversation":GOSUB 130 1832 OPEN "PHONE.KIT" FOR APPEND AS #1 1834 WRITE #1,D$(RC,1),D$(RC,2),D$(RC,3),D$(RC,8),T$(4),T$(3),STR$(T1),Q$:CLOSE #1 1838 M$="You were talking for "+STR$(T1)+" minutes and "+STR$(T2)+" seconds":GOSUB 22:RETURN 1840 GOSUB 490 1841 SN=4:GOSUB 24:RETURN 1850 MN=2:RETURN 1900 REM mus,ran,lin,cir,coo,ska,yan,men 1904 ON MC GOSUB 1910,1920,1930,1940,1950,1960,1970,1980:RETURN 1910 GOSUB 10100:RETURN 1920 GOSUB 10200:RETURN 1930 IF MT THEN GOSUB 10300:RETURN ELSE RETURN 1940 IF MT THEN GOSUB 10400:RETURN ELSE RETURN 1950 GOSUB 10500:RETURN 1960 GOSUB 10600:RETURN 1970 GOSUB 10700:RETURN 1980 MN=1:RETURN 2000 REM cu1,cu2,cu3,spe,men 2002 ON MC GOSUB 2010,2020,2030,2040,2050:RETURN 2010 RN=6:GOSUB 460:RETURN 2020 RN=7:GOSUB 460:RETURN 2030 RN=8:GOSUB 460:RETURN 2040 RN=4:GOSUB 620:GOSUB 460:RETURN 2050 MN=7:RETURN 10100 REM PIANO 10102 GOSUB 102:M$="Musical Keyboard: To play music press the keynote, press ESC to return to menu":GOSUB 120 10103 GOSUB 70:IF R=K(1) THEN GOSUB 102:RETURN 10104 X=INSTR("abcdefg",R$):IF X=0 THEN 10103 10105 PLAY MID$("abcdefg",X,1):GOTO 10103 10106 PLAY R$:GOTO 10104 10200 REM random 10201 UB=RND*5000:DR=RND*5:WHILE INKEY$="" 10210 SOUND RND*UB+40,DR:WEND:RETURN 10300 REM LINES 10302 SCREEN 2,0,0:LINE (RND*640,RND*200)-(RND*640,RND*200) 10304 R$=INKEY$:IF R$<>"" THEN SCREEN 0,0,0:GOSUB 102:RETURN 10306 LINE -(RND*640,RND*200):GOTO 10304 10400 REM cir 10402 SCREEN 2,0,0 10404 R$=INKEY$:IF R$<>"" THEN SCREEN 0,0,0:GOSUB 102:RETURN 10406 CIRCLE (RND*640,RND*200),RND*20:GOTO 10404 10500 REM COOk 10502 CLS:FOR X=400 TO 10 STEP -6:LOCATE RND*23+1,RND*70+1,1,0,31:SOUND 600-X,1 10504 PRINT "COOKIE!";:FOR P=1 TO X/3:NEXT:NEXT 10510 FOR P=1 TO 3000:NEXT:GOSUB 102:RETURN 10600 GOSUB 102:BEEP:LOCATE 10,5:PRINT "Before enlightenment, chop wood and draw water.";:LOCATE 13,10 10602 PRINT "After enlightenment, chop wood and draw water.";:GOSUB 114:RETURN 10700 PLAY "o2ccdeced2ccdec3o1bo2ccdefedco1bgabo2cc":RETURN 40000 REM 40030 PRINT:PRINT:COLOR 15,0 40040 PRINT " Keep in Touch (TM) by Gnossos Software " 40080 PRINT:COLOR 7,0 40100 PRINT " Copyright 1984 - You may share copies with friends - V0 Fall 1984" 40120 PRINT:COLOR 15,0 40129 PRINT " Keep in Touch is a shareware product, pay only if you like it." 40130 PRINT " Rather than selling it through retail outlets for a much higher price" 40140 PRINT " we offer Keep in Touch to you through the miracle of telecommunications." 40160 PRINT " Please try the program, and if you like it and find it useful," 40170 PRINT " send payment of $25/personal or $50/business use 40171 PRINT " and we will send you the latest version with a package and manual." 40172 PRINT " The full version has auto-dialing, more room for data, etc." 40173 PRINT " Please share copies with friends, and remind them to pay for the program" 40175 PRINT " Shareware means trust and community. We offer Keep in Touch to you" 40176 PRINT " because we run an honest shop and we want to base our business on" 40177 PRINT " Trust, Sharing, and Synergy. ":PRINT:COLOR 7,0 40179 PRINT " Gnossos Software" 40180 PRINT " 1625 R St. NW, Washington DC, 20009 -- (202) 387-0858" 40200 PRINT 40210 PRINT " by Steve Kantor"; 40230 LOCATE 1,1:PRINT STRING$(79,"█");:LOCATE 24,1:PRINT STRING$(79,"█"); 40240 FOR X=1 TO 24:LOCATE X,1:PRINT "█";:LOCATE X,79:PRINT "█";:NEXT X 40250 FOR X=100 TO 1000 STEP 100:SOUND X,1:NEXT 40260 LOCATE 1,1:FOR P=1 TO 25000:NEXT P:FOR X=1 TO 16:PRINT STRING$(79," ");:NEXT 40261 FOR P=1 TO 500:NEXT:LOCATE 16,1:PRINT STRING$(79,"█");:FOR P=1 TO 1000:NEXT:LOCATE 25,1:FOR X=1 TO 11:PRINT:NEXT 40270 RETURN 60000 KEY OFF 60001 NM$="Steve":AD=0:MT=0 60005 ON ERROR GOTO 690 60010 IF AD THEN OPEN "com1:" FOR OUTPUT AS #1:CLOSE #1 60100 DATA 13,27,72,80,77,75,71,79,83,82,73,81,4,45 60101 DIM K(15),T%(15),B(20):B(15)=120:DIM M%(16),D$(B(15)+1,16),G$(20,2),B%(B(15)) 60104 FOR X=0 TO 13:READ K(X):NEXT:GOSUB 61000:MC=1:MN=1 60105 T$(4)=MID$(DATE$,1,2)+"/"+MID$(DATE$,4,2)+"/"+MID$(DATE$,9,2) 60106 GOSUB 400:T$(0)=T$(3):T%(5)=T%(0):T%(6)=T%(1) 60201 T3=0:T1=5:T2=1:FOR X=1 TO 40:FOR T%=0 TO 2 60202 S$(T%,X,1)=STR$(T1):S$(T%,X,2)=STR$(T2):NEXT:T3=T3+1:T2=40 60204 IF T3=2 THEN T3=0:T1=T1+1:T2=1 60206 NEXT 60210 COLOR 7,0:GOSUB 590:GOSUB 147:GOSUB 150:GOTO 900 61000 REM REP 61002 DIM R%(9,10,1) 61004 DATA 1,12,2,12,3,37,8,12,999,999 61006 DATA 2,12,3,40,9,8,10,8,999,999 61008 DATA 2,12,3,23,16,40,999,999,999,999 61030 FOR RN=1 TO 4:FOR X=1 TO 10:FOR T=0 TO 1 61032 READ R%(RN,X,T):NEXT:IF R%(RN,X,0)=999 THEN 61036 61034 NEXT X 61036 NEXT RN 62000 DIM S$(7,40,2) 62102 SN=3:FOR T1=1 TO 10:S$(SN,T1,1)=STR$(T1+9) 62104 S$(SN,T1,2)="11":S$(SN,T1,0)=SPACE$(2) 62106 NEXT:S$(SN,0,0)="10" 62202 SN=4:S$(SN,0,0)="16" 62204 DATA First,8,20,Last,8,38,Company,9,20,Street,11,20,City,12,20 62206 DATA State,12,43,Zip,12,48,Phone,13,20,L,15,23,L,15,50 62208 DATA T,17,22,C,18,22,P,19,22,T,20,22,S,21,22 62210 DATA C,22,22 62212 FOR T1=1 TO 16:FOR T2=0 TO 2:READ S$(SN,T1,T2):NEXT:NEXT 62300 SN=5:S$(SN,0,0)="3" 62302 DATA Yes,3,1,No,3,8,Cancel,3,14 62312 FOR T1=1 TO 3:FOR T2=0 TO 2:READ S$(SN,T1,T2):NEXT:NEXT 62402 SN=6:S$(SN,0,0)="20" 62404 FOR T1=1 TO 20:S$(SN,T1,1)=STR$(T1+4):S$(SN,T1,2)="1":NEXT T1 62802 DIM CL$(16,2) 62804 DATA Last Meet,15,8,Last Call,15,38,Title,17,8,Category,18,8 62806 DATA Politics,19,8,Type,20,8,Status,21,8,Comments,22,8 62808 FOR T1=9 TO 16:FOR T2=0 TO 2:READ CL$(T1,T2):NEXT:NEXT 62810 FOR T1=1 TO 8:CL$(T1,0)=S$(4,T1,0):NEXT T1 62820 FOR X=1 TO 16:D$(0,X)=CL$(X,0):NEXT 62850 SN=7:FOR X=1 TO 16:S$(SN,X,0)=CL$(X,0):S$(SN,X,1)=STR$(X+5) 62852 S$(SN,X,2)=STR$(15):NEXT:S$(SN,0,0)="16" 63000 DIM M$(10,9,1) 63040 DATA People,Examine information on your contacts and clients 63050 DATA Clock,Check the time and use alarm clock 63060 DATA Reports,Create reports from your information on people 63070 DATA To Do,Maintain Things-To-Do list 63071 DATA Database,"Save your files, switch files, and delete files from your data disk" 63072 DATA Games,"Games, visual relaxation and amusement" 63073 DATA Other,"Change organization, sound, dialing, headings, memory, etc." 63075 DATA Quit,Quit Keep in Touch program 63076 DATA X,1 63077 DATA Edit,Edit and change information on contact's card 63078 DATA Call,Call your contact on the phone using automatic dialer 63079 DATA Next,Turn to next contact card 63080 DATA Previous,Turn to previous contact card 63081 DATA Add,Add a new contact card to your file 63082 DATA Print,Print this contact on the printer 63083 DATA Other,"Flipping cards, deleting contact, selecting contacts, etc." 63084 DATA Menu,Return to a list of all contacts 63099 DATA X,2 63100 DATA First,Turn to the first contact 63102 DATA Last,Turn to the last contact 63104 DATA Next,Turn to the next contact 63106 DATA Previous,Turn to the previous contact 63108 DATA Delete,Delete this contact from your file 63109 DATA Select,Select a group of contacts 63120 DATA Menu,Return to contacts menu 63121 DATA X,3 63150 DATA Save,Save your Address Book on your disk 63151 DATA Switch,Save your current Address Book and open a different one 63154 DATA List,List all of your Address Books on this disk 63155 DATA Delete,Delete an entire Address Book from your disk - Careful! 63156 DATA Extract,Extract a group of contacts to a file for transfer 63158 DATA Menu,Return to main menu 63160 DATA X,4 63204 DATA Alarm,Set the alarm clock and turn the alarm clock on 63208 DATA Off,Turn OFF the alarm clock 63212 DATA Menu,Return to main menu 63214 DATA X,5 63300 DATA Company,Organize contacts by company 63302 DATA Names,Organize contacts by first and last names 63304 DATA Dialing,"Special dialing services, information, weather, time" 63306 DATA Headings,Customize contacts information for your needs 63308 DATA Calc,Use the built-in calculator 63310 DATA Bytes,Check the amount of memory that is available for contacts 63312 DATA Utility,Switch from Keep in Touch to Utility programs 63313 DATA Menu,Return to main menu 63314 DATA X,6 63400 DATA Phonelist,Print a phonelist report 63402 DATA Dates,Print a report of dates 63404 DATA Remarks,Print a report of remarks and comments on contacts 63405 DATA Custom,Print one of your custom reports or a special report 63406 DATA Labels,Mailing labels using Avery Tabulabel 4146 4" format 63410 DATA Design,Design custom reports 63411 DATA Select,Select a subset group of contacts to report 63412 DATA Menu,Return to main menu 63414 DATA X,7 63500 DATA Change,Change the information on your contact 63502 DATA Elapsed,Display the clock for elapsed time of call 63504 DATA Hangup,Hang up the telephone connection and show elapsed time 63506 DATA To Do,Show Things-To-Do list 63508 DATA People,Return to CONTACTS menu 63510 DATA X,8 63600 DATA Piano,Play the musical keyboard like a piano 63601 DATA Notes,Play random tones at random intervals and enjoy 63602 DATA Lines,Random lines a la Jackson Pollack 63603 DATA Circle,Random circles across the heavens 63604 DATA Tricky,Cookie monster game 63605 DATA Quote,Marty Schwimmer's favorite quotation 63606 DATA Yankee,Yankee Doodle Dandy 63609 DATA Menu,Return to main menu 63690 DATA X,9 63700 DATA Cust1,Custom report 1 63702 DATA Cust2,Custom report 2 63704 DATA Cust3,Custom report 3 63706 DATA Special,Create a unique one-time report 63708 DATA Reports,Return to reports menu 63710 DATA X,X 63900 DATA 1,1,2,1,1,1,1,2,1,7 63920 FOR T1=1 TO 13:FOR T2=1 TO 10:FOR T3=0 TO 1:READ M$(T1,T2,T3):NEXT 63930 IF M$(T1,T2,0)="X" THEN M$(T1,0,0)=STR$(T2-1):GOTO 63950 63940 NEXT 63950 IF M$(T1,T2,1)="X" THEN 63960 63952 NEXT T1 63960 FOR T1=1 TO 10:READ M$(T1,0,1):NEXT:RETURN